In an enterprise, there are departments that need to be able to interact with two or more different software program applications to obtain the necessary data for typical operations. For example, in a call center, an operator services a customer query. To service the customer, a process (e.g., a user interface (“UI”)) on the operator's client device might have to interface with several different software applications. For example, the client process may interact with one application (e.g., customer accounts) to inquire about stored information associated with that customer, for example the customer account number, business address, etc. The client process may interact with another application (e.g., orders) to inquire about an order placed by the customer. Finally, the client process may interact with yet another application (e.g., inventory) to inquire about the current inventory of items in the customer order.
In some existing systems, enabling the client device to access different applications requires that the client process (e.g., UI) have knowledge on how to interact with each of those three different applications. The UI must know about the application program interfaces (“APIs”) that allow the UI to interact and retrieve data from each of the different applications. Depending on the application, the UI might also have to know about the data structure used in the particular application to retrieve the desired information or make changes within the currently stored data. The UI must accommodate any special requirements of each of the applications and if a new application is added, the UI must be updated to include the necessary commands for the new application.